home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 August / August CD.bin / Shareware / Utilities / Pythagoras 1.1 / Read me first (please!) < prev   
Text File  |  1994-04-06  |  14KB  |  130 lines

  1.  
  2.  
  3.  
  4.  
  5. v. 1.1 (April 1994), based on UniMotion v. 1.0
  6.  
  7. an After Dark™  module by Andrea G. Pessino (for the record: I'm not female)
  8. Copyright © 1994 by Kiwi® Software, Inc.
  9.  
  10. Special thanks to Ron Hovingh and Andrew Welch.
  11. Very special thanks to Pete Gontier (even more special thanks for version 1.1).
  12.  
  13. Free for all non-commercial purposes, but please read the important disclaimers at the end of this file.
  14.  
  15. Changes since version 1.0 (March 1994): due to overwhelming demand, I have added support for "Thousands of colors" (16 bit color). Nothing else has changed.
  16.  
  17. _______________________________________ WELCOME!
  18. Pythagoras (Pythy) is a free-of-charge module for use with Berkeley Systems™ After Dark™ family of screen saver programs (or any other program that can run After Dark modules, such as BitJugglers™ UnderWare™, Now Software™'s NowFun™ and several others). It is a gift for you from Kiwi Software, Inc.; we hope you will enjoy it as much as we do.
  19.  
  20. Pythy was designed with one goal in mind: creating a near-endless variety of intriguing visuals based exclusively on real-time plotting of mathematical functions. Pythy uses hundreds of continually oscillating parameters to keep its visuals interesting. If you are interested in knowing more about the inner workings of Pythy you will find details in the "Designer's Notes" section at the very end of this document.
  21.  
  22. You can share Pythy with your friends, and you are allowed (and encouraged) to post it on any BBS, to distribute it to your User Group's members, etc… but _please_ make sure you have read the distribution restrictions at the end of this document before doing so, and always make sure that this file is included.
  23.  
  24. _______________________________________ HARDWARE REQUIREMENTS
  25. Pythy requires at least a 68020-based Macintosh with a numeric coprocessor; it will perform optimally on a IIfx-class machine or better (every '040 machine is fast enough). Notice that a numeric coprocessor is essential for this module, as it needs to compute literally thousands of transcendental functions every second.
  26.  
  27. It is possible to run Pythy on older coprocessor-equipped Macs (like the original Mac II, the IIcx, the IIci, etc.), but performance will suffer. If you notice some annoying flickering in the animation it means that your machine is not fast enough, and you need to reduce the "Resolution:" parameter to a lower setting (also notice that, on slow machines, some flickering might happen in the first seconds of animation when the credits are visible. Things should improve as soon as the text goes away). A complete description of the parameters is provided later in this document.
  28.  
  29. Notice that the recently released PowerMacs only emulate a 68LC040 (the version of the 68040 processor _without_ an integrated coprocessor), and therefore this version of Pythy will not run on a PowerMac. As soon as I get a PowerMac I will create a PowerPC-native version of Pythagoras.
  30.  
  31. Also, Pythy only works on the "main" monitor (if you have multiple screens attached, the "main" monitor is the one which displays the menu bar). Three color "depths" are supported: "256 colors" (8 bit color), "Thousands of colors" (16 bit color) and "Millions of colors" (24/32 bit color).
  32.  
  33. If any of the above requirements are not met Pythy will notify you and it will refuse to run. Pythy will work with monitors of any size and shape, always using as much screen real estate as is available.
  34.  
  35. One more thing: for technical reasons, Pythy does not work in After Dark's "Demo" mode; you have to move the cursor to the "Sleep Now" corner to activate the module. Pythy should be a very polite, very clean little module. It has been extensively beta tested and it does not have any known bug or problem.
  36.  
  37. _______________________________________ USING PYTHAGORAS
  38. Put the file named "Pythagoras" in your "After Dark Files" folder (it should be located somewhere whithin your System Folder, probably either in the "Control Panels" or in the "Preferences" folder). Open the After Dark control panel and select "Pythagoras" from the list of modules. Now drag the cursor to the "Sleep Now" corner, sit back and relax.. the show should start immediately!
  39.  
  40. A few tips to fully enjoy the Pythy show:
  41.  
  42. - Give it time! Pythagoras is capable of producing a stunning variety of different visuals. You should observe the module in action for at least five minutes just to have a general idea of what it can do.
  43. - I personally use Pythy as a "thinking cap". It is very relaxing to sit in a dark room with some music in the background and Pythy in action on your Mac screen. I just sit there and watch, for hours… (then again, I never said I was normal).
  44.  
  45. _______________________________________ PARAMETERS
  46. - "Trail:" 
  47. You can use this slider to change the length of the trail left on screen by the function plots. Settings go from "Shortest" to "Radically Long" (dude!); the default setting is "Normal". Notice that, contrary to popular belief, the trail length does _not_ affect performance in any way. Pythy runs at the exact same speed whether the trail length is set to "Shortest" or "Radically Long".
  48.  
  49. - "Resolution:"
  50. This parameter affects the performance (and the results) of the module dramatically. The default setting is "High", and that's the one you should use unless you have a fairly slow machine. The higher the resolution, the higher the density of the points plotted by each function and the longer it takes to draw each frame of animation. If the resolution is set too high for your machine, the animation will "flicker". If your machine is capable of at least the performance of a Mac IIfx you should not worry about "Resolution:" and you should leave it on "High".
  51.  
  52. - "UniMotion:"
  53. This slider allows you to turn on/off some of the UniMotion controlled oscillators used by the module. The default setting "K+T+R+S" means "all the available oscillators on" and it will give you the richest possible visuals. If you want to know the details please refer to the "Designer's Notes" section below, or else leave the "UniMotion:" parameter set to "K+T+R+S".
  54.  
  55. - "Colors:"
  56. Several color tables are provided, including the option to pick one randomly every time the module is started. "Rainbow" is my favorite.
  57.  
  58. _______________________________________ IT'S FREE
  59. Although Pythagoras is free, it is not in the public domain. It is copyrighted, and the
  60. copyright will be enforced whenever appropriate; hence: 
  61.  
  62. -    Pythagoras cannot be sold, either by itself or in combination with any other product, without the express written permission of Kiwi Software, Inc.
  63. -    If you run a user group which publishes a CD-ROM or floppy collection, you may include Pythagoras and all of its included files without restriction.
  64. -    Commercial publishers and distributors of CD-ROM or floppy disk software collections may not distribute Pythagoras on CD-ROM or floppy disk without the express written permission of Kiwi Software, Inc.
  65. -    Pythagoras may be posted on any information service which charges its users for general connection time and downloading, but it may NOT be posted on an information service which charges for the specific right to download Pythagoras without the express written permission of Kiwi Software, Inc.
  66.  
  67. IMPORTANT!
  68. Because Pythagoras is a free product, Kiwi Software, Inc. will NOT provide technical support for it. Please do NOT bother our fine technical support people. If you have any questions, comments, etc. write directly to me:
  69.  
  70.         Andrea Pessino
  71.         Director of Research & Development
  72.         Kiwi Software, Inc.
  73.  
  74.         America Online: kiwisoft2
  75.         Internet/general: kiwisoft2@aol.com
  76.  
  77. _______________________________________ HAVE FUN!
  78. That's about it. If you are interested in the inner workings of this module you can read the "Designer's Notes" section below. Otherwise,  have fun with the module and let me know what you think of it! Any comments, questions, suggestions, etc. (or a nice postcard) are most welcomed. Thank you!
  79.                                                                                                                                                                 
  80.                                                                                                                                                             Andrea Pessino
  81.  
  82.  
  83. NOTE: After Dark™ is a trademark of Berkeley Systems™, Inc. Now Fun™ is a trademark of Now Software™, Inc. and UnderWare™ is a trademark of BitJugglers™, Inc.
  84.  
  85.  
  86. _______________________________________ DESIGNER'S NOTES
  87.  
  88. WARNING! THE TEXT BELOW CONTAINS SOME DETAILS OF THE RESEARCH BEHIND PYTHAGORAS, IT IS _EXTREMELY_ HEAVY READING AND CAN KILL YOU OUT OF BOREDOM UNLESS YOU HAVE SOME KIND OF PERVERTED INTEREST IN THIS KIND OF STUFF! 
  89.  
  90. Oh well.. don't say I didn't warn you...
  91.  
  92. This first public release of Pythagoras comprises over 200 KB of executable code (no animated clip art or pretty bitmaps here, just pure mathematical magic... <g>). Just in case you actually care: most of the code was written in C++, some portions are in plain C and the core plotting  engine was coded in 68020 assembly language.
  93.  
  94. It all started out a couple of months ago when, in between projects, I was experimenting with various aspects of animating mathematical functions on screen (particularly trigonometric ones); while working on these experiments, I came up with an intriguing algorithm I called Stochastic Polar Oscillation (SPO).
  95.  
  96. After implementing the first few versions of the module I got tired of the relative "roughness" of the motion produced by the noisy stochastic oscillators in the SPO algorithm, so I had another idea and developed it: it is called UniMotion. UniMotion is a complex C++ class capable of modeling one-dimensional universes, and then of using a mixture of stochastic and physics equations to simulate oscillating motion under constant acceleration inside the boundaries of such universes. It is like a world of chaotic excitement "constrained" by the laws of physics; and it works pretty well.
  97.  
  98. Every parameter in Pythy's engine is constantly altered by computed relative amounts but, instead of changing drastically, these values are smoothly interpolated in their own private unidimensional miniuniverses with different physically-consistent attributes for acceleration, deceleration, maximum velocity, etc… All of the relevant variables in Pythagoras use UniMotion objects to "evolve", and the result is a much smoother, much more interesting range of variations.
  99.  
  100. Additionally, a complete set of affine transformations is applied to the plane on which the various functions are plotted. So the entire coordinate system is rotated, scaled up and down, and translated continuously by a horde of UniMotion-controlled parameters.
  101.  
  102. The "UniMotion" parameter in the control panel allows you to turn on and off some of the UniMotion objects used by the module:
  103.  
  104. K = kernel on. The letter K represents the "core" UniMotion objects (that is: those used by the SPO algorithm itself). You cannot turn these off, in fact the letter K appears in all of the available options.
  105.  
  106. T = translation on. The coordinate plane is translated (offset) by a pair of UniMotion objects, one on each axis.
  107.  
  108. S = scaling on. The coordinate plane is scaled up and down by a single UniMotion object.
  109.  
  110. R = rotation on. The coordinate plane is rotated by a single UniMotion object. 
  111.  
  112. The default setting of "K+T+S+R" makes all of the possible UniMotion oscillators active at the same time; you might want to try the other settings to see how the output of the module is affected by the various transformations. For example, with the other parameters to the default settings, try setting "UniMotion:" to "K+S" (kernel + scaling). In this mode, no translation or rotation will be active, just the kernel oscillations and, of course, the continuous scaling up and down of the plotting plane. You will see that Pythy appears much "calmer," much more relaxed with these settings, and it should be easier to observe the details of the mathematical beauty of its plots.
  113.  
  114. An interesting thing to notice is that, in the current implementation of Pythagoras, I have barely scratched the surface of what it is possible to do with SPO and with UniMotion. For example, really interesting things could happen if we use a UniMotion object as one (or more than one) of the parameters that define another UniMotion object. In the current version of Pythy all of the parameters that define a UniMotion universe are constant, but this could easily change. Any UniMotion-object parameter could be a UniMotion object itself, thereby creating a universe in which the "laws of physics" are not constant but evolve over time according to the "laws of physics" of a nested universe (or universes)!
  115.  
  116. In any case, I am sure that I will continue to evolve this technology and that it will be very useful in my upcoming projects. UniMotion, in particular, is a godsend for any entertainment software engineer, as useful as it is in any animation or simulation project.
  117.  
  118. Suppose that you need to non-interactively rotate a logo, or to spin a 3D solid, or to move "particles" in some kind of space, etc… In each of these cases you can go with either of the following options:
  119.  
  120. a) constant velocities/directions (boring), or…
  121. b) use functions/waveforms (better, but you would probably have to use periodic functions, so it would still be boring), or…
  122. c) unbiased random velocities/directions (ugly), or…
  123. d) biased random velocities/directions (better, but still ugly), or…
  124. e) you simply replace your "velocity/direction" variables with UniMotion objects (if the quantities are vectors, you can use a UniMotion object for each component), you define the physical properties of each UniMotion universe,  and…
  125.  
  126. pronto! Instantaneous motion that is completely smooth, always different and physically consistent!
  127.  
  128. Well, if you are interested in these topics (or in any other computer graphics/entertainment software related topic) let me know and we can talk… bye!
  129.  
  130.